iT邦幫忙

2024 iThome 鐵人賽

DAY 4
1

今天也繼續加油、繼續刷刷刷~
————————————我是可愛的題目分隔線————————————

題目1:打印1到100的數字

  • 方法:可以用一個 for 迴圈來完成

舉個例子:
https://ithelp.ithome.com.tw/upload/images/20240918/20168371awGHau13V8.png

https://ithelp.ithome.com.tw/upload/images/20240918/20168371reJ5fOW3SX.png

https://ithelp.ithome.com.tw/upload/images/20240918/20168371gHKyVAVBpW.png

第1題結束。

---距離集滿300題還剩 題---
————————————我是可愛的題目分隔線————————————

題目2:計算1到10的和

-這個就是把1到10的所有數字加起來。可以用迴圈把數字一個一個累加

舉個例子:
https://ithelp.ithome.com.tw/upload/images/20240918/20168371a2p8cHxxTh.png

這裡 sum 會是1到10的和,結果是55:
https://ithelp.ithome.com.tw/upload/images/20240918/201683716xkByhfstM.png

第2題結束。

---距離集滿300題還剩 題---
————————————我是可愛的題目分隔線————————————

題目3:計算1到N的奇數和

-這題要找出1到10之間的所有奇數,然後把它們加起來

舉個例子:
https://ithelp.ithome.com.tw/upload/images/20240918/20168371NzpV7nEftZ.png

這裡 sum 是1到10的奇數和,結果是25:
https://ithelp.ithome.com.tw/upload/images/20240918/20168371agHAsMbHas.png

第3題結束。

---距離集滿300題還剩 題---
————————————我是可愛的題目分隔線————————————

題目4:打印九九乘法表

-這是要顯示1到9的乘法表,可以用兩個 for 迴圈來完成

舉個例子:
https://ithelp.ithome.com.tw/upload/images/20240918/20168371X8NEwXn9vo.png

** 最後一行的print( )指的是,打印完一行後換一行印
這樣會顯示完整的九九乘法表:
https://ithelp.ithome.com.tw/upload/images/20240918/20168371YcquLjZfIi.png

https://ithelp.ithome.com.tw/upload/images/20240918/20168371EUktA5Zqt6.png

第4題結束。

---距離集滿300題還剩 題---
————————————我是可愛的題目分隔線————————————

題目5:計算N的階乘

-階乘就是從1乘到N的所有數字

舉個例子:
https://ithelp.ithome.com.tw/upload/images/20240918/20168371jcYVB5LLJW.png

** factorial 階層
這裡 factorial 會是5的階乘,結果是120:
https://ithelp.ithome.com.tw/upload/images/20240918/20168371VQnbVsmtsx.png

第5題結束。

---距離集滿300題還剩 題---
————————————我是可愛的題目分隔線————————————

題目6:找出100以內的所有質數

-質數是指只能被1和自己整除的數字。可以用迴圈一個一個檢查每個數字是否是質數

舉個例子:
https://ithelp.ithome.com.tw/upload/images/20240918/20168371P0d4YzB2Z4.png

這裡會顯示2到100之間的所有質數:
https://ithelp.ithome.com.tw/upload/images/20240918/20168371xtKwbWp19V.png

第6題結束。

---距離集滿300題還剩 題---
————————————我是可愛的題目分隔線————————————

題目7:打印倒三角形

  • 這題是要顯示一個倒過來的三角形,可以用 for 迴圈和 print 函數的 * 來顯示

舉個例子:
https://ithelp.ithome.com.tw/upload/images/20240918/20168371qBsh1W5NVQ.png

這裡會顯示一個高為5的倒三角形:
https://ithelp.ithome.com.tw/upload/images/20240918/20168371C4zejNAXNR.png

步驟說明:

  1. N = 5
    我們設置了變數 N,它的值是5,表示三角形有5行。

  2. for i in range(N, 0, -1):
    這個迴圈從 i = 5 開始,然後每次減1,直到 i = 1。這意味著這個迴圈會執行5次,分別對應倒三角形的每一行。

  3. ' ' * (N - i)
    這部分表示在每一行的開頭打印空格的數量。空格的數量取決於 (N - i) 的值。隨著 i 變小,空格的數量會增加。這是為了讓星星的圖案看起來像倒三角形。

    • i = 5 時,空格數是 5 - 5 = 0,所以這一行不打印空格。
    • i = 4 時,空格數是 5 - 4 = 1,所以這一行會打印1個空格。
    • 以此類推。
  4. '*' * (2 * i - 1)
    這部分表示在每一行打印星星的數量。星星的數量取決於 (2 * i - 1),這個公式是用來計算每一行應該打印多少顆星星。

    • i = 5 時,星星數是 2 * 5 - 1 = 9,所以這一行會打印9顆星星。
    • i = 4 時,星星數是 2 * 4 - 1 = 7,所以這一行會打印7顆星星。
    • 以此類推,星星的數量逐漸減少。
  5. print(...)
    print 函數會把計算出來的空格和星星打印到屏幕上,形成倒三角形的圖案。

簡單來說,這段程式碼就是通過控制空格和星星的數量,逐行打印出一個從上到下逐漸變小的倒三角形。

第7題結束。

---距離集滿300題還剩 題---
————————————我是可愛的題目分隔線————————————

題目8:打印斐波那契數列

-斐波那契數列是從0和1開始,每一項都是前兩項的和

舉個例子:
https://ithelp.ithome.com.tw/upload/images/20240918/20168371wDNLQvgmPn.png

這裡會顯示前10個斐波那契數:
**這個 % 符號應該是我自己使用的編程環境或終端自動添加的,與本身的程式碼無關。
https://ithelp.ithome.com.tw/upload/images/20240918/2016837143QdVQYTq3.png

步驟說明:

  1. N = 10
    這裡設定變數 N 為10,意思是我們要打印斐波那契數列的前10個數字。

  2. a, b = 0, 1
    一開始,我們設置 a 為0,b 為1,這就是斐波那契數列的前兩個數字。

  3. for _ in range(N):
    這個迴圈會執行 N 次,意思是它會重複執行10次。這裡的 _ 只是用來表示我們不需要使用這個變數的值(因為只需要重複執行N次,不用管具體是哪一次)。

  4. print(a, end=" ")
    每次迴圈中,都會打印當前的 a 值,並且不換行(用空格隔開每個數字)。這樣數字會一個接一個地打印在同一行。

  5. a, b = b, a + b
    這一步是更新 ab 的值,讓 a 變成 bb 變成 a + b,這樣下一次迴圈時 a 就會是下一個斐波那契數字,而 b 會是再下一個數字。

運作方式舉例:

  • 第一次迴圈a = 0, b = 1,打印0,然後 a 變成1,b 變成1。
  • 第二次迴圈a = 1, b = 1,打印1,然後 a 變成1,b 變成2。
  • 第三次迴圈a = 1, b = 2,打印1,然後 a 變成2,b 變成3。
  • 後續迴圈:依此類推...

所以,這段程式碼會打印出斐波那契數列的前10個數字:0 1 1 2 3 5 8 13 21 34

第8題結束。

---距離集滿300題還剩 題---
————————————我是可愛的題目分隔線————————————

題目9:計算數字的各位數和

-這題是要把一個數字的每一位數字加起來

舉個例子:
https://ithelp.ithome.com.tw/upload/images/20240918/201683713Gs7rGxXus.png

這裡會顯示1234的各位數字和,結果是10:
https://ithelp.ithome.com.tw/upload/images/20240918/20168371RpGb901vIr.png

步驟說明:

  1. num = 1234
    我們設置了變數 num1234,這是我們要計算的數字。

  2. sum_of_digits = 0
    sum_of_digits 是用來累加各位數字總和的變數,初始值設為 0

  3. while num > 0:
    num 還大於 0 時,這個迴圈會一直執行。這意味著當 num 被處理到最後只剩 0 時,迴圈會停止。

  4. sum_of_digits += num % 10
    num % 10 是用來取得 num 的最後一位數字,比如 1234 % 10 會得到 4。然後,我們把這個數字加到 sum_of_digits 中。第一次迴圈後,sum_of_digits 變成 4

  5. num //= 10
    num //= 10 是用來去掉 num 的最後一位數字,比如 1234 // 10 會得到 123。這樣在下一次迴圈中,我們就可以處理新的 num,即 123

  6. 重複以上步驟
    迴圈會一直重複這個過程,直到 num 變成 0 為止。

    • 第二次迴圈時,num 變成 123sum_of_digits 變成 4 + 3 = 7
    • 第三次迴圈時,num 變成 12sum_of_digits 變成 7 + 2 = 9
    • 第四次迴圈時,num 變成 1sum_of_digits 變成 9 + 1 = 10
    • 第五次迴圈結束後,num 變成 0,迴圈停止。
  7. print(sum_of_digits)
    最後,我們打印出 sum_of_digits,它的值是 10,這就是 1234 各位數字的總和。

總結:

這段程式碼會把 1234 分解成 1234,然後把這些數字加起來,得到 10,最後打印出來。

第9題結束。

---距離集滿300題還剩題---
————————————我是可愛的題目分隔線————————————

題目10:反轉一個數字

-這題是要把一個數字的位數反過來

舉個例子:
https://ithelp.ithome.com.tw/upload/images/20240918/20168371JoIo8nraZd.png

這裡會顯示1234反轉後的結果,結果是4321:
https://ithelp.ithome.com.tw/upload/images/20240918/20168371nl7u1ZOXb0.png

步驟說明:

  1. num = 1234
    我們設置了變數 num1234,這是我們要反轉的數字。

  2. reversed_num = 0
    reversed_num 是用來存放反轉後的數字,初始值設為 0

  3. while num > 0:
    num 還大於 0 時,這個迴圈會一直執行。當 num 被處理到最後只剩 0 時,迴圈會停止。

  4. reversed_num = reversed_num * 10 + num % 10

    • reversed_num * 10 是將 reversed_num 向左移一位,為了能夠接下來添加新的數字。
    • num % 10 會得到 num 的最後一位數字,比如 1234 % 10 會得到 4
    • 然後,我們把這個數字加到 reversed_num 裡面。第一次迴圈後,reversed_num 變成 4
  5. num //= 10
    num //= 10 是用來去掉 num 的最後一位數字,比如 1234 // 10 會得到 123。這樣在下一次迴圈中,我們就可以處理新的 num,即 123

  6. 重複以上步驟
    迴圈會一直重複這個過程,直到 num 變成 0 為止。

    • 第二次迴圈時,num 變成 123reversed_num 變成 4 * 10 + 3 = 43
    • 第三次迴圈時,num 變成 12reversed_num 變成 43 * 10 + 2 = 432
    • 第四次迴圈時,num 變成 1reversed_num 變成 432 * 10 + 1 = 4321
    • 第五次迴圈結束後,num 變成 0,迴圈停止。
  7. print(reversed_num)
    最後,我們打印出 reversed_num,它的值是 4321,這就是 1234 反轉後的數字。

總結:

這段程式碼會逐步提取 1234 的每一位數字,並依次把這些數字從右到左組合成 4321,最後打印出反轉後的結果。

第10題結束。

---距離集滿300題還剩260題---
————————————我是可愛的題目分隔線————————————


上一篇
第三天刷題
下一篇
第五天刷題
系列文
Python 新手入門:挑戰30天刷完300題13
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言